package com.liu;

import com.liu.proxy.Proxy;

/**
 * 1)一个对象 不能 或 不想 直接访问另一个对象，这时需要中介（代理对象）来帮忙完成。
 * 不能：安全原因，需要屏蔽客户端直接访问真实对象。
 * 不想：访问的对象比较大，
 */
public class ProxyTest {
    public static void main(String[] args) {
        System.err.println("------------------------------代理模式------------------------------");
        Proxy proxy = new Proxy();
        /**
         * 抽象主题（Subject）类：通过接口或抽象类声明真实主题和代理对象实现的业务方法。
         * 真实主题（Real Subject）类：实现了抽象主题中的具体业务，是代理对象所代表的真实对象，是最终要引用的对象。
         * 代理（Proxy）类：提供了与真实主题相同的接口，其内部含有对真实主题的引用，它可以访问、控制或扩展真实主题的功能。
         */
        proxy.request();
    }
}
